
#dos disk operator system 磁盘操作系统
print('123')
#1.定义变量
#2.给变量赋值，等号左边变量（变量就是保存常量的容器） 等号右边常量（不变的数值）
#常量只能表示数学意义，但是通过变量来管理常量额外赋予了完成的语义
high=175
name="张三"
score=77.5
print(type(score))
high2=174
#python 简单的数据类型
# 1.数字型号
# 整数
print("---------列举数据类型---------")
age = 32
print(type(age))
  # 浮点数
score = 77.5
print(type(score))
  #bool 布尔型
isExists = True
print(type(isExists))
print(isExists==1) #bool为True的值 和 1是相等的 因为True就是1 False就是0
  # 复数 实部+虚部 表示的数字 用于科学计算 complex
testx = 3+5j
print(type(testx))
print("-----运算学习-----")
x = 5
y = 3
print(x+y) # - 减法  * 乘法
print(x/y) # / 结果保留到能够表示的小数
print(x//y) # // 结果直接去尾取整
print(x**y) # 乘方
'''
数学计算，不同类型和同类型的数字计算都会有类型转换的问题
1.自动类型转换，用精度更高的类型来表示结果，比如 整数 除以 整数 无论是否能除尽都 以小数保存结果
2.强制类型转换 int() 强制转换为整数  float()强制转换为小数
'''
print("------类型转换--------")
print(type(6/2)) # 能除尽的为小数
print(type(2*1.5)) #有小数的乘法结果类型也为小数
print(type(int(2*1.5))) #能够直接无缝转为整数的小数结果强制转换
print(int(2*1.8)) #不能无缝转换为整数的小数强制转换 结果被去尾转换尾整数
x1 = 1.5
y1 = 2
print(type(x1*y1))


# 2.字符串型
print('----------数字与字符---------------')
print(ord(","))
print(type('a'))
'''
1.求字符串的长度
2.取字符串的子串
3.查找子串的位置
4.替换子串
5.逆向输出字符串
'''
#1.求字符串长度
print("字符串处理")
name="allen.smith"
print(len(name)) #len函数 能够把原始数据处理成希望的数据 length
#2.找子串 字符串切片
print(name[::]) #用冒号分割三部分数据作为参数 1 start 开始的位置  2 结束的位置  3 间隔
print(name[0::])
print(name[1::])
print(name[2::])
print(name[6:9:])  #从编号（索引）6取到编号 9 结果为smi
print(name[::2])  #间隔两个取一个 结果为alnsih
print(name[::3])  #间隔3个取一次 结果为aest
print(name[2:7:2]) #lns 从编号 2取到编号7 间隔两个取一次
#3. 逆序输出字符串
print(name[::-1])
# 找出外国人的姓氏
#复杂数据类型
#3.比较和运算
if high >= high2:
   print('第一个人更高')
else:
    print('第二个人更高')



print('---数字函数处理----')
import math #引入数学对象
#查看新引入对象的功能 使用dir
print(dir(math))
#取整
#收尾取整 天花板取整  只要多点 都收上来，但是要注意精度超出精度会丢掉尾巴
x = 1.0000000000000001
print(math.ceil(x))
#去尾取整 地板取整
y = 2.999999999999999
print(math.floor(y))
#取绝对值
print(int(math.fabs(-100)))

print('------时间日期处理--------')
import time
#日期处理
# 日期的表示方式 有3种
# 1. 时间戳 数字以秒为单位的小数
time1 = time.time() #取得是 格林威治时间
print(time1) #现在的时间 距离1970年1月1日 0时0分 0秒过去了多少秒
print(type(time1))
# 2. 时间元组
time2 = time.gmtime(time1) #将时间戳类型转换为 格林威治的时间元组
print(time2)
print(type(time2))
timeLocal = time.localtime(time1) #将时间戳类型转为为本地时区的时间元组
print(timeLocal)
#时间元组的特点是方便获取 时间的部分
currYear = timeLocal.tm_year
# 3. 格式化日期字符串
timeStr3 = '2001-09-15'
time3 = time.strptime(timeStr3,'%Y-%m-%d') #参数1待转换的日期字符串 参数2 转换的标准
# %Y 4位年 %y 2位年 %m 月 %M 分钟 %d 日期 %H 24小时 %h12小时 %S 秒
bornYear = time3.tm_year
print("今年虚岁：" + str(currYear - bornYear))
bornTime = time.mktime(time3) #时间元组转换为时间戳
print(math.floor((time1 - bornTime) / (365*24*3600)))


